home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_b
/
pulse.act
< prev
next >
Wrap
Text File
|
1995-04-22
|
3KB
|
199 lines
;puLse - joeL gLuck - anaLog 26
BYTE ARRAY X(192),Y(192),C(192)
BYTE NUM=[10]
INT ARRAY XD(192)
CARD ARRAY LINEPT(192)
PROC PAUZ(CARD N)
CARD I
FOR I=0 TO N+N
DO OD
RETURN
PROC INTRO()
BYTE I ,COLOR1=709
Graphics(0)
Poke(710,0)
Poke(752,1)
Print(" ")
PAUZ(30000)
Position(17,9)
Print("puLse")
PAUZ(30000)
POSITION(13,11)
PRINT("by joeL gLuck")
PAUZ(30000)
Position(9,13)
Print("from ANALOG COMPUTING")
PAUZ(60000)
FOR I=0 TO 15 DO
COLOR1=15-I
PAUZ(2000)
OD
RETURN
PROC GR10INIT()
CARD LINE,REG,COL,LUM,SCRN=88
BYTE ARRAY GTIACOL(8)=705
GRAPHICS(10)
POKE(704,0)
FOR REG=0 TO 7 DO
COL=Rand(16)
LUM=Rand(9)+4
GTIACOL(REG)=COL*16+LUM
OD
FOR LINE=0 TO 191 DO
LINEPT(LINE)=SCRN+40*LINE
OD
RETURN
PROC PLOT10(BYTE X,Y,COL)
BYTE POINTER PIXEL
BYTE ARRAY
COLFIL=[0 17 34 51 68 85 102
119 136 0 0 0 0 0 0 0],
MASK=[15 240],
MASK2=[240 15]
PIXEL=LINEPT(Y)+(X RSH 1)
PIXEL^=PIXEL^ & MASK(X & 1)
% (COLFIL(COL)
& MASK2(X & 1))
RETURN
BYTE FUNC LOCATE10(BYTE X,Y)
BYTE POINTER PIXEL
BYTE ARRAY MASK= [240 15 ]
PIXEL= LINEPT(Y)+(X RSH 1)
RETURN((PIXEL^ & MASK(X & 1)) RSH
(((X & 1) XOR 1) LSH 2))
PROC DRAWLINE(BYTE A,B,C)
BYTE I
FOR I=A TO 79-A DO
PLOT10(I,B,C)
PLOT10(I,191-B,C)
OD
RETURN
PROC INIT()
BYTE I,J,S
GR10INIT()
FOR I=0 TO NUM-1 DO
X(I)=RAND(40)
DO
Y(I)=Rand(96)
S=0
IF I=0 THEN
EXIT
FI
FOR J=0 TO I-1 DO
IF Y(I)=Y(J) THEN
S=1
EXIT
FI
OD
UNTIL S=0
OD
C(I)=(I MOD 8)+1
DRAWLINE(X(I),Y(I),C(I))
XD(I)=(RAND(2)*2-1)*(Rand(3)+1)
OD
RETURN
PROC SQUEEZE(BYTE N)
BYTE A,I
INT D
D=XD(N)
IF D<0 THEN
D=-1
ELSE
D=1
FI
FOR I=1 TO (XD(N)/D) DO
A=X(N)+D
IF A>39 THEN
XD(N)=-XD(N)
EXIT
FI
IF D>0 THEN
PLOT10(X(N),Y(N),0)
PLOT10(79-X(N),Y(N),0)
PLOT10(X(N),191-Y(N),0)
PLOT10(79-X(N),191-Y(N),0)
ELSE
PLOT10(X(N),Y(N),C(N))
PLOT10(79-X(N),Y(N),C(N))
PLOT10(X(N),191-Y(N),C(N))
PLOT10(79-X(N),191-Y(N),C(N))
FI
X(N)=A
PLOT10(X(N),Y(N),C(N))
PLOT10(79-X(N),Y(N),C(N))
PLOT10(X(N),191-Y(N),C(N))
PLOT10(79-X(N),191-Y(N),C(N))
OD
RETURN
PROC PULSE()
BYTE I,CH=764,AT=77,MS=19,LS=20
INTRO()
DO
NUM=Rand(6)+5
INIT()
CH=255
AT=77
LS=0
MS=0
DO
FOR I=0 TO NUM-1 DO
SQUEEZE(I)
OD
UNTIL CH<>255 OR MS=4
OD
UNTIL CH=12
OD
CH=255
GRAPHICS(0)
RETURN